package model;
import java.util.ArrayList;

/**
 *
 * @author Gruppe 5
 */
public class SalgCont
{
    ArrayList<Salg> salgListe;
    Salg solgte;
    private static SalgCont instance;

    public SalgCont()
    {
        salgListe = new ArrayList<Salg>();
    }

    public static SalgCont getInstance()
    {
        if(instance == null)
        {
            instance = new SalgCont();
        }
        return instance;
    }


    public int addSalg(Salg salg)
    {
    int nyOrdreNr = 1;
        //if (salg.getOrdreNr() == 0)
          //{
            if(salgListe.size() > 0)
            {
                int lastIndex = salgListe.size()-1;
                Salg lastSalg = salgListe.get(lastIndex);
                nyOrdreNr = lastSalg.getOrdreNr();
                nyOrdreNr += 1;
            }
             salg.setOrdreNr(nyOrdreNr);
        //}
        salgListe.add(salg);
        return nyOrdreNr;
    }

    public void addSalgsLinjeToSalg(int ordreNr, Salgslinje salg)
    {
  
        findSalg(ordreNr).addSalgsLinje(salg);

        
    }
      

    public Salg findSenestOrdreNr()
    {
        int ordreNr = 0;
        int huskIndex = 0;
        int index = 0;
        
        while (index < salgListe.size())
        {
            Salg salg = salgListe.get(index);
            if (salg.getOrdreNr() > ordreNr)
            {
                ordreNr = salg.getOrdreNr();
                huskIndex = index;
            }
            index++;
        }
        return salgListe.get(huskIndex);
    }
    
    public void printSolgeVarer()
    {
        System.out.println("Vareliste");
        for (Salg salg : salgListe)
        {
            System.out.println(solgte.getScannet());
        }
    }

    public Salg findSalg(int ordreNr)
    {
        Salg salg = null;
        int index = 0;
        boolean found = false;
       
        while (index < salgListe.size() && !found)
        {
           salg = salgListe.get(index);           
            
            if (salg.getOrdreNr() == ordreNr)
            {
        
                found = true;
            
            }
            else
            {
                index++;
            }
        }
        if (found)
        {
            return salgListe.get(index);
        }
        else
        {
            return null;
        }
    
    
    }

    public double totalPris(int ordreNr)
    {
        double pris = 0;
        Salg salg = findSalg(ordreNr);
        if (salg != null)
        {
            pris = salg.totalPris();
        }
        else
        {
            System.out.println("Der findes ingen salg med ordrenummer: " +
                    ordreNr);
        }
        return pris;
    }

    public String printSolgte()
    {
        String test ="";
        for (Salg salg : salgListe)
        {
            test += salg.printSalgsLinje();
        }
        return test;
    }

    public ArrayList printSalgsLinjer(int ordreNr)
    {
        return findSalg(ordreNr).getScannet();
    }



}
